package com.example.armclock

import android.app.AlarmManager
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.icu.util.Calendar
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.AlarmClock
import android.widget.Button
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    lateinit var btn : Button
    private var alarmMgr: AlarmManager? = null
    private lateinit var alarmIntent: PendingIntent
    @RequiresApi(Build.VERSION_CODES.N)
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        btn = findViewById(R.id.btn)
        btn.setOnClickListener {
            createAlarm("测试消息",8,0,17)
        }
    }

    private fun createAlarm(message: String, hour: Int, minutes: Int) {
        val intent = Intent(AlarmClock.ACTION_SET_ALARM).apply {
            putExtra(AlarmClock.EXTRA_MESSAGE, message)
            putExtra(AlarmClock.EXTRA_HOUR, hour)
            putExtra(AlarmClock.EXTRA_MINUTES, minutes)
        }
        if (intent.resolveActivity(packageManager) != null) {
            startActivity(intent)
        }
    }


    private fun createAlarm(message: String, hour: Int, minutes: Int, resId: Int) {
        val testDays: ArrayList<Int> = ArrayList()
        testDays.add(Calendar.MONDAY) //周一
        testDays.add(Calendar.TUESDAY) //周二
        testDays.add(Calendar.THURSDAY) //周二
        testDays.add(Calendar.FRIDAY) //周五
        val packageName = application.packageName
        val ringtoneUri: Uri = Uri.parse("android.resource://$packageName/$resId")
        //action为AlarmClock.ACTION_SET_ALARM
        val intent: Intent = Intent(AlarmClock.ACTION_SET_ALARM) //闹钟的小时
                .putExtra(AlarmClock.EXTRA_HOUR, hour) //闹钟的分钟
                .putExtra(AlarmClock.EXTRA_MINUTES, minutes) //响铃时提示的信息
                .putExtra(AlarmClock.EXTRA_MESSAGE, message) //用于指定该闹铃触发时是否振动
                .putExtra(AlarmClock.EXTRA_VIBRATE, true) //一个 content: URI，用于指定闹铃使用的铃声，也可指定 VALUE_RINGTONE_SILENT 以不使用铃声。
                //如需使用默认铃声，则无需指定此 extra。
                .putExtra(AlarmClock.EXTRA_RINGTONE, ringtoneUri) //一个 ArrayList，其中包括应重复触发该闹铃的每个周日。
                // 每一天都必须使用 Calendar 类中的某个整型值（如 MONDAY）进行声明。
                //对于一次性闹铃，无需指定此 extra
                .putExtra(AlarmClock.EXTRA_DAYS, testDays) //如果为true，则调用startActivity()不会进入手机的闹钟设置界面
                .putExtra(AlarmClock.EXTRA_SKIP_UI, true)
//        if (intent.resolveActivity(packageManager) != null) {
            startActivity(intent)
//        }
    }
}